package pers.xiaojun.boot.module.system.enums.oauth2;

import cn.hutool.core.util.ArrayUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

/**
 * 授权方式枚举类
 *
 * @author xiaojun
 * @since 2025-10-18
 */
@AllArgsConstructor
@Getter
public enum OAuth2GrantTypeEnum {

    PASSWORD("password"), // 密码模式
    CODE("code"), // 授权码模式
    IMPLICIT("implicit"), // 简化模式
    CLIENT("client"), // 客户端模式
    REFRESH_TOKEN("refresh_token"); // 刷新模式

    private final String grantType;

    public static OAuth2GrantTypeEnum getByGrantType(String grantType) {
        return ArrayUtil.firstMatch(o -> o.getGrantType().equals(grantType), values());
    }

}
